home *** CD-ROM | disk | FTP | other *** search
- #define __OPRDR_H
-
-
- #ifndef __FSTRM_H
- #include "fstrm.h"
- #endif
-
-
- typedef unsigned int UINT;
-
- struct pmgrupinfo;
- struct pmiteminfo;
-
- class abspath;
-
- class opt /* op type */
- {
- public:
-
- enum
- {
- /* op type in v1.5 */
- mkdir, deldir, renfile, delfile, copyfile,
- setfileattr, createfile, addinientry, delinientry, setinivalue,
- addgrup, additem, delgrup, delitem, addregkey,
- addregfield, setregfield, delregfield, delregkey,
-
- /* the following op types modified in v2.1: */
- /* copyfile ==> instcreate */
- /* addinientry ==> insinientry support seqno */
- /* delinientry ==> <no change> support seqno */
- /* setinivalue ==> <no change> support seqno */
- /* setregfield ==> <no change> support non-REG_SZ type */
- /* delregfield ==> <no change> support non-REG_SZ type */
- instcreate = copyfile,
- insinientry = addinientry,
-
- /* op type introduced in v2.1 */
- instappend = delregkey+1, /* make it consecutive */
- addinisect,
- delinisect,
- instfont
- };
- };
-
- class oprdrabs
- {
- public:
-
- virtual void mkdir(abspath &dir) = 0;
- virtual void deldir(abspath &dir) = 0;
- virtual void delfile(abspath &path) = 0;
- virtual void renfile(abspath &oldpath, abspath &newpath) = 0;
- virtual void createfile(abspath &path) = 0;
- virtual void setfileattr(abspath &path, DWORD oldflags, DWORD newflags) = 0;
- virtual void instcreatefile(abspath &srcpath, abspath &dstpath, int isuninstall) = 0;
- virtual void instappendfile(abspath &srcpath, abspath &dstpath, int isuninstall, long off) = 0;
-
- virtual void addinisect(abspath &file, char sect[]) = 0;
- virtual void delinisect(abspath &file, char sect[]) = 0;
- virtual void insinientry(abspath &file, char sect[], char entry[], int seqno) = 0;
- virtual void delinientry(abspath &file, char sect[], char entry[], char oldv[], int seqno) = 0;
- virtual void setinivalue(abspath &file, char sect[], char entry[], char oldv[], int seqno) = 0;
-
- virtual void addgrup(char grup[]) = 0;
- virtual void additem(char grup[], char item[]) = 0;
- virtual void delgrup(char grup[]) = 0;
- virtual void delitem(char grup[], pmiteminfo &pmii) = 0;
-
- virtual void addregkey(int kroot, char kpath[]) = 0;
- virtual void delregkey(int kroot, char kpath[]) = 0;
- virtual void addregfield(int kroot, char kpath[], char field[]) = 0;
- virtual void setregfield(int kroot, char kpath[], char field[], DWORD oldt, DWORD oldz, BYTE oldv[]) = 0;
- virtual void delregfield(int kroot, char kpath[], char field[], DWORD oldt, DWORD oldz, BYTE oldv[]) = 0;
-
- virtual void installfont(abspath &file, int isuninstall) = 0;
- };
-
- class oprdrnul:public oprdrabs
- {
- public:
-
- void mkdir(abspath &dir)
- {
-
- }
- void deldir(abspath &dir)
- {
-
- }
- void delfile(abspath &path)
- {
-
- }
- void renfile(abspath &oldpath, abspath &newpath)
- {
-
- }
- void createfile(abspath &path)
- {
-
- }
- void setfileattr(abspath &path, DWORD oldflags, DWORD newflags)
- {
-
- }
- void instcreatefile(abspath &srcpath, abspath &dstpath, int isuninstall)
- {
-
- }
- void instappendfile(abspath &srcpath, abspath &dstpath, int isuninstall, long off)
- {
-
- }
- void addinisect(abspath &file, char sect[])
- {
-
- }
- void delinisect(abspath &file, char sect[])
- {
-
- }
- void insinientry(abspath &file, char sect[], char entry[], int seqno)
- {
-
- }
- void delinientry(abspath &file, char sect[], char entry[], char oldv[], int seqno)
- {
-
- }
- void setinivalue(abspath &file, char sect[], char entry[], char oldv[], int seqno)
- {
-
- }
- void addgrup(char grup[])
- {
-
- }
- void additem(char grup[], char item[])
- {
-
- }
- void delgrup(char grup[])
- {
-
- }
- void delitem(char grup[], pmiteminfo &pmii)
- {
-
- }
- void addregkey(int kroot, char kpath[])
- {
-
- }
- void delregkey(int kroot, char kpath[])
- {
-
- }
- void addregfield(int kroot, char kpath[], char field[])
- {
-
- }
- void setregfield(int kroot, char kpath[], char field[], DWORD oldt, DWORD oldz, BYTE oldv[])
- {
-
- }
- void delregfield(int kroot, char kpath[], char field[], DWORD oldt, DWORD oldz, BYTE oldv[])
- {
-
- }
- void installfont(abspath &file, int isuninstall)
- {
-
- }
- };
-
- /* a binary file storing install log (not really an INI file) */
- class oprdrini:public oprdrabs
- {
- fstrm f;
-
- public:
-
- oprdrini() /* must call init later */
- {
-
- }
- oprdrini(int *r, char appname[]);
-
- void free() /* close the file */
- {
- f.free();
- }
-
- int init(char appname[]);
-
- void mkdir(abspath &dir);
- void deldir(abspath &dir);
- void delfile(abspath &path);
- void renfile(abspath &oldpath, abspath &newpath);
- void createfile(abspath &path);
- void setfileattr(abspath &path, DWORD oldflags, DWORD newflags);
- void instcreatefile(abspath &srcpath, abspath &dstpath, int isuninstall);
- void instappendfile(abspath &srcpath, abspath &dstpath, int isuninstall, long off);
-
- void addinisect(abspath &file, char sect[]);
- void delinisect(abspath &file, char sect[]);
- void insinientry(abspath &file, char sect[], char entry[], int seqno);
- void delinientry(abspath &file, char sect[], char entry[], char oldv[], int seqno);
- void setinivalue(abspath &file, char sect[], char entry[], char oldv[], int seqno);
-
- void addgrup(char grup[]);
- void additem(char grup[], char item[]);
- void delgrup(char grup[]);
- void delitem(char grup[], pmiteminfo &pmii);
-
- void addregkey(int kroot, char kpath[]);
- void delregkey(int kroot, char kpath[]);
- void addregfield(int kroot, char kpath[], char field[]);
- void delregfield(int kroot, char kpath[], char field[], DWORD oldt, DWORD oldz, BYTE oldv[]);
- void setregfield(int kroot, char kpath[], char field[], DWORD oldt, DWORD oldz, BYTE oldv[]);
-
- void installfont(abspath &file, int isuninstall);
- };
-
-